use strict;
use warnings;
TEST('vbroadcasti128 ymm4, oword [ecx]', [0xc4,0xe2,0x7d,0x5a,0x21], 'MODE32');
TEST('vbroadcasti128 ymm4, oword [rcx]', [0xc4,0xe2,0x7d,0x5a,0x21], 'MODE64');

TEST('vbroadcastsd ymm6, xmm4', [0xc4,0xe2,0x7d,0x19,0xf4], 'MODE32');
TEST('vbroadcastsd ymm6, xmm4', [0xc4,0xe2,0x7d,0x19,0xf4], 'MODE64');

TEST('vbroadcastss ymm6, xmm4', [0xc4,0xe2,0x7d,0x18,0xf4], 'MODE32');
TEST('vbroadcastss xmm6, xmm4', [0xc4,0xe2,0x79,0x18,0xf4], 'MODE32');
TEST('vbroadcastss ymm6, xmm4', [0xc4,0xe2,0x7d,0x18,0xf4], 'MODE64');
TEST('vbroadcastss xmm6, xmm4', [0xc4,0xe2,0x79,0x18,0xf4], 'MODE64');

TEST('vextracti128 xmm6, ymm4, 7       ', [0xc4,0xe3,0x7d,0x39,0xe6,0x07], 'MODE32');
TEST('vextracti128 oword [ecx], ymm4, 7', [0xc4,0xe3,0x7d,0x39,0x21,0x07], 'MODE32');
TEST('vextracti128 xmm6, ymm4, 7       ', [0xc4,0xe3,0x7d,0x39,0xe6,0x07], 'MODE64');
TEST('vextracti128 oword [rcx], ymm4, 7', [0xc4,0xe3,0x7d,0x39,0x21,0x07], 'MODE64');

TEST('vinserti128 ymm6, ymm4, xmm4, 7       ', [0xc4,0xe3,0x5d,0x38,0xf4,0x07], 'MODE32');
TEST('vinserti128 ymm6, ymm4, oword [ecx], 7', [0xc4,0xe3,0x5d,0x38,0x31,0x07], 'MODE32');
TEST('vinserti128 ymm6, ymm4, xmm4, 7       ', [0xc4,0xe3,0x5d,0x38,0xf4,0x07], 'MODE64');
TEST('vinserti128 ymm6, ymm4, oword [rcx], 7', [0xc4,0xe3,0x5d,0x38,0x31,0x07], 'MODE64');

TEST('vmovntdqa ymm4, yword [ecx]', [0xc4,0xe2,0x7d,0x2a,0x21], 'MODE32');
TEST('vmovntdqa ymm4, yword [rcx]', [0xc4,0xe2,0x7d,0x2a,0x21], 'MODE64');

TEST('vmpsadbw ymm2, ymm6, ymm4, 7       ', [0xc4,0xe3,0x4d,0x42,0xd4,0x07], 'MODE32');
TEST('vmpsadbw ymm2, ymm6, yword [ecx], 7', [0xc4,0xe3,0x4d,0x42,0x11,0x07], 'MODE32');
TEST('vmpsadbw ymm2, ymm6, ymm4, 7       ', [0xc4,0xe3,0x4d,0x42,0xd4,0x07], 'MODE64');
TEST('vmpsadbw ymm2, ymm6, yword [rcx], 7', [0xc4,0xe3,0x4d,0x42,0x11,0x07], 'MODE64');

TEST('vpabsb ymm6, ymm4       ', [0xc4,0xe2,0x7d,0x1c,0xf4], 'MODE32');
TEST('vpabsb ymm4, yword [ecx]', [0xc4,0xe2,0x7d,0x1c,0x21], 'MODE32');
TEST('vpabsb ymm6, ymm4       ', [0xc4,0xe2,0x7d,0x1c,0xf4], 'MODE64');
TEST('vpabsb ymm4, yword [rcx]', [0xc4,0xe2,0x7d,0x1c,0x21], 'MODE64');

TEST('vpabsd ymm6, ymm4       ', [0xc4,0xe2,0x7d,0x1e,0xf4], 'MODE32');
TEST('vpabsd ymm4, yword [ecx]', [0xc4,0xe2,0x7d,0x1e,0x21], 'MODE32');
TEST('vpabsd ymm6, ymm4       ', [0xc4,0xe2,0x7d,0x1e,0xf4], 'MODE64');
TEST('vpabsd ymm4, yword [rcx]', [0xc4,0xe2,0x7d,0x1e,0x21], 'MODE64');

TEST('vpabsw ymm6, ymm4       ', [0xc4,0xe2,0x7d,0x1d,0xf4], 'MODE32');
TEST('vpabsw ymm4, yword [ecx]', [0xc4,0xe2,0x7d,0x1d,0x21], 'MODE32');
TEST('vpabsw ymm6, ymm4       ', [0xc4,0xe2,0x7d,0x1d,0xf4], 'MODE64');
TEST('vpabsw ymm4, yword [rcx]', [0xc4,0xe2,0x7d,0x1d,0x21], 'MODE64');

TEST('vpackssdw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x6b,0xd4], 'MODE32');
TEST('vpackssdw ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0x6b,0x11], 'MODE32');
TEST('vpackssdw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x6b,0xd4], 'MODE64');
TEST('vpackssdw ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0x6b,0x11], 'MODE64');

TEST('vpacksswb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x63,0xd4], 'MODE32');
TEST('vpacksswb ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0x63,0x11], 'MODE32');
TEST('vpacksswb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x63,0xd4], 'MODE64');
TEST('vpacksswb ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0x63,0x11], 'MODE64');

TEST('vpackusdw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x2b,0xd4], 'MODE32');
TEST('vpackusdw ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x2b,0x11], 'MODE32');
TEST('vpackusdw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x2b,0xd4], 'MODE64');
TEST('vpackusdw ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x2b,0x11], 'MODE64');

TEST('vpackuswb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x67,0xd4], 'MODE32');
TEST('vpackuswb ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0x67,0x11], 'MODE32');
TEST('vpackuswb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x67,0xd4], 'MODE64');
TEST('vpackuswb ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0x67,0x11], 'MODE64');

TEST('vpaddb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xfc,0xd4], 'MODE32');
TEST('vpaddb ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xfc,0x11], 'MODE32');
TEST('vpaddb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xfc,0xd4], 'MODE64');
TEST('vpaddb ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xfc,0x11], 'MODE64');

TEST('vpaddd ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xfe,0xd4], 'MODE32');
TEST('vpaddd ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xfe,0x11], 'MODE32');
TEST('vpaddd ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xfe,0xd4], 'MODE64');
TEST('vpaddd ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xfe,0x11], 'MODE64');

TEST('vpaddq ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xd4,0xd4], 'MODE32');
TEST('vpaddq ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xd4,0x11], 'MODE32');
TEST('vpaddq ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xd4,0xd4], 'MODE64');
TEST('vpaddq ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xd4,0x11], 'MODE64');

TEST('vpaddsb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xec,0xd4], 'MODE32');
TEST('vpaddsb ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xec,0x11], 'MODE32');
TEST('vpaddsb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xec,0xd4], 'MODE64');
TEST('vpaddsb ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xec,0x11], 'MODE64');

TEST('vpaddsw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xed,0xd4], 'MODE32');
TEST('vpaddsw ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xed,0x11], 'MODE32');
TEST('vpaddsw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xed,0xd4], 'MODE64');
TEST('vpaddsw ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xed,0x11], 'MODE64');

TEST('vpaddusb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xdc,0xd4], 'MODE32');
TEST('vpaddusb ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xdc,0x11], 'MODE32');
TEST('vpaddusb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xdc,0xd4], 'MODE64');
TEST('vpaddusb ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xdc,0x11], 'MODE64');

TEST('vpaddusw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xdd,0xd4], 'MODE32');
TEST('vpaddusw ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xdd,0x11], 'MODE32');
TEST('vpaddusw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xdd,0xd4], 'MODE64');
TEST('vpaddusw ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xdd,0x11], 'MODE64');

TEST('vpaddw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xfd,0xd4], 'MODE32');
TEST('vpaddw ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xfd,0x11], 'MODE32');
TEST('vpaddw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xfd,0xd4], 'MODE64');
TEST('vpaddw ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xfd,0x11], 'MODE64');

TEST('vpalignr ymm2, ymm6, ymm4, 7       ', [0xc4,0xe3,0x4d,0x0f,0xd4,0x07], 'MODE32');
TEST('vpalignr ymm2, ymm6, yword [ecx], 7', [0xc4,0xe3,0x4d,0x0f,0x11,0x07], 'MODE32');
TEST('vpalignr ymm2, ymm6, ymm4, 7       ', [0xc4,0xe3,0x4d,0x0f,0xd4,0x07], 'MODE64');
TEST('vpalignr ymm2, ymm6, yword [rcx], 7', [0xc4,0xe3,0x4d,0x0f,0x11,0x07], 'MODE64');

TEST('vpand ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xdb,0xd4], 'MODE32');
TEST('vpand ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xdb,0x11], 'MODE32');
TEST('vpand ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xdb,0xd4], 'MODE64');
TEST('vpand ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xdb,0x11], 'MODE64');

TEST('vpandn ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xdf,0xd4], 'MODE32');
TEST('vpandn ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xdf,0x11], 'MODE32');
TEST('vpandn ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xdf,0xd4], 'MODE64');
TEST('vpandn ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xdf,0x11], 'MODE64');

TEST('vpavgb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xe0,0xd4], 'MODE32');
TEST('vpavgb ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xe0,0x11], 'MODE32');
TEST('vpavgb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xe0,0xd4], 'MODE64');
TEST('vpavgb ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xe0,0x11], 'MODE64');

TEST('vpavgw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xe3,0xd4], 'MODE32');
TEST('vpavgw ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xe3,0x11], 'MODE32');
TEST('vpavgw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xe3,0xd4], 'MODE64');
TEST('vpavgw ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xe3,0x11], 'MODE64');

TEST('vpblendd ymm2, ymm6, ymm4, 7       ', [0xc4,0xe3,0x4d,0x02,0xd4,0x07], 'MODE32');
TEST('vpblendd ymm2, ymm6, yword [ecx], 7', [0xc4,0xe3,0x4d,0x02,0x11,0x07], 'MODE32');
TEST('vpblendd xmm2, xmm6, xmm4, 7       ', [0xc4,0xe3,0x49,0x02,0xd4,0x07], 'MODE32');
TEST('vpblendd xmm2, xmm6, oword [ecx], 7', [0xc4,0xe3,0x49,0x02,0x11,0x07], 'MODE32');
TEST('vpblendd ymm2, ymm6, ymm4, 7       ', [0xc4,0xe3,0x4d,0x02,0xd4,0x07], 'MODE64');
TEST('vpblendd ymm2, ymm6, yword [rcx], 7', [0xc4,0xe3,0x4d,0x02,0x11,0x07], 'MODE64');
TEST('vpblendd xmm2, xmm6, xmm4, 7       ', [0xc4,0xe3,0x49,0x02,0xd4,0x07], 'MODE64');
TEST('vpblendd xmm2, xmm6, oword [rcx], 7', [0xc4,0xe3,0x49,0x02,0x11,0x07], 'MODE64');

TEST('vpblendvb ymm7, ymm2, ymm6, ymm4       ', [0xc4,0xe3,0x6d,0x4c,0xfe,0x40], 'MODE32');
TEST('vpblendvb ymm7, ymm2, yword [ecx], ymm4', [0xc4,0xe3,0x6d,0x4c,0x39,0x40], 'MODE32');
TEST('vpblendvb ymm7, ymm2, ymm6, ymm4       ', [0xc4,0xe3,0x6d,0x4c,0xfe,0x40], 'MODE64');
TEST('vpblendvb ymm7, ymm2, yword [rcx], ymm4', [0xc4,0xe3,0x6d,0x4c,0x39,0x40], 'MODE64');

TEST('vpblendw ymm2, ymm6, ymm4, 7       ', [0xc4,0xe3,0x4d,0x0e,0xd4,0x07], 'MODE32');
TEST('vpblendw ymm2, ymm6, yword [ecx], 7', [0xc4,0xe3,0x4d,0x0e,0x11,0x07], 'MODE32');
TEST('vpblendw ymm2, ymm6, ymm4, 7       ', [0xc4,0xe3,0x4d,0x0e,0xd4,0x07], 'MODE64');
TEST('vpblendw ymm2, ymm6, yword [rcx], 7', [0xc4,0xe3,0x4d,0x0e,0x11,0x07], 'MODE64');

TEST('vpbroadcastb xmm6, xmm4      ', [0xc4,0xe2,0x79,0x78,0xf4], 'MODE32');
TEST('vpbroadcastb xmm4, byte [ecx]', [0xc4,0xe2,0x79,0x78,0x21], 'MODE32');
TEST('vpbroadcastb ymm6, xmm4      ', [0xc4,0xe2,0x7d,0x78,0xf4], 'MODE32');
TEST('vpbroadcastb ymm4, byte [ecx]', [0xc4,0xe2,0x7d,0x78,0x21], 'MODE32');
TEST('vpbroadcastb xmm6, xmm4      ', [0xc4,0xe2,0x79,0x78,0xf4], 'MODE64');
TEST('vpbroadcastb xmm4, byte [rcx]', [0xc4,0xe2,0x79,0x78,0x21], 'MODE64');
TEST('vpbroadcastb ymm6, xmm4      ', [0xc4,0xe2,0x7d,0x78,0xf4], 'MODE64');
TEST('vpbroadcastb ymm4, byte [rcx]', [0xc4,0xe2,0x7d,0x78,0x21], 'MODE64');

TEST('vpbroadcastd ymm4, xmm4       ', [0xc4,0xe2,0x7d,0x58,0xe4], 'MODE32');
TEST('vpbroadcastd ymm4, dword [ecx]', [0xc4,0xe2,0x7d,0x58,0x21], 'MODE32');
TEST('vpbroadcastd xmm6, xmm4       ', [0xc4,0xe2,0x79,0x58,0xf4], 'MODE32');
TEST('vpbroadcastd xmm4, dword [ecx]', [0xc4,0xe2,0x79,0x58,0x21], 'MODE32');
TEST('vpbroadcastd ymm4, xmm4       ', [0xc4,0xe2,0x7d,0x58,0xe4], 'MODE64');
TEST('vpbroadcastd ymm4, dword [rcx]', [0xc4,0xe2,0x7d,0x58,0x21], 'MODE64');
TEST('vpbroadcastd xmm6, xmm4       ', [0xc4,0xe2,0x79,0x58,0xf4], 'MODE64');
TEST('vpbroadcastd xmm4, dword [rcx]', [0xc4,0xe2,0x79,0x58,0x21], 'MODE64');

TEST('vpbroadcastq xmm6, xmm4       ', [0xc4,0xe2,0x79,0x59,0xf4], 'MODE32');
TEST('vpbroadcastq xmm4, qword [ecx]', [0xc4,0xe2,0x79,0x59,0x21], 'MODE32');
TEST('vpbroadcastq ymm6, xmm4       ', [0xc4,0xe2,0x7d,0x59,0xf4], 'MODE32');
TEST('vpbroadcastq ymm4, qword [ecx]', [0xc4,0xe2,0x7d,0x59,0x21], 'MODE32');
TEST('vpbroadcastq xmm6, xmm4       ', [0xc4,0xe2,0x79,0x59,0xf4], 'MODE64');
TEST('vpbroadcastq xmm4, qword [rcx]', [0xc4,0xe2,0x79,0x59,0x21], 'MODE64');
TEST('vpbroadcastq ymm6, xmm4       ', [0xc4,0xe2,0x7d,0x59,0xf4], 'MODE64');
TEST('vpbroadcastq ymm4, qword [rcx]', [0xc4,0xe2,0x7d,0x59,0x21], 'MODE64');

TEST('vpbroadcastw xmm6, xmm4      ', [0xc4,0xe2,0x79,0x79,0xf4], 'MODE32');
TEST('vpbroadcastw xmm4, word [ecx]', [0xc4,0xe2,0x79,0x79,0x21], 'MODE32');
TEST('vpbroadcastw ymm6, xmm4      ', [0xc4,0xe2,0x7d,0x79,0xf4], 'MODE32');
TEST('vpbroadcastw ymm4, word [ecx]', [0xc4,0xe2,0x7d,0x79,0x21], 'MODE32');
TEST('vpbroadcastw xmm6, xmm4      ', [0xc4,0xe2,0x79,0x79,0xf4], 'MODE64');
TEST('vpbroadcastw xmm4, word [rcx]', [0xc4,0xe2,0x79,0x79,0x21], 'MODE64');
TEST('vpbroadcastw ymm6, xmm4      ', [0xc4,0xe2,0x7d,0x79,0xf4], 'MODE64');
TEST('vpbroadcastw ymm4, word [rcx]', [0xc4,0xe2,0x7d,0x79,0x21], 'MODE64');

TEST('vpcmpeqb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x74,0xd4], 'MODE32');
TEST('vpcmpeqb ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0x74,0x11], 'MODE32');
TEST('vpcmpeqb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x74,0xd4], 'MODE64');
TEST('vpcmpeqb ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0x74,0x11], 'MODE64');

TEST('vpcmpeqd ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x76,0xd4], 'MODE32');
TEST('vpcmpeqd ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0x76,0x11], 'MODE32');
TEST('vpcmpeqd ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x76,0xd4], 'MODE64');
TEST('vpcmpeqd ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0x76,0x11], 'MODE64');

TEST('vpcmpeqq ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x29,0xd4], 'MODE32');
TEST('vpcmpeqq ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x29,0x11], 'MODE32');
TEST('vpcmpeqq ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x29,0xd4], 'MODE64');
TEST('vpcmpeqq ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x29,0x11], 'MODE64');

TEST('vpcmpeqw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x75,0xd4], 'MODE32');
TEST('vpcmpeqw ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0x75,0x11], 'MODE32');
TEST('vpcmpeqw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x75,0xd4], 'MODE64');
TEST('vpcmpeqw ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0x75,0x11], 'MODE64');

TEST('vpcmpgtb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x64,0xd4], 'MODE32');
TEST('vpcmpgtb ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0x64,0x11], 'MODE32');
TEST('vpcmpgtb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x64,0xd4], 'MODE64');
TEST('vpcmpgtb ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0x64,0x11], 'MODE64');

TEST('vpcmpgtd ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x66,0xd4], 'MODE32');
TEST('vpcmpgtd ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0x66,0x11], 'MODE32');
TEST('vpcmpgtd ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x66,0xd4], 'MODE64');
TEST('vpcmpgtd ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0x66,0x11], 'MODE64');

TEST('vpcmpgtq ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x37,0xd4], 'MODE32');
TEST('vpcmpgtq ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x37,0x11], 'MODE32');
TEST('vpcmpgtq ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x37,0xd4], 'MODE64');
TEST('vpcmpgtq ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x37,0x11], 'MODE64');

TEST('vpcmpgtw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x65,0xd4], 'MODE32');
TEST('vpcmpgtw ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0x65,0x11], 'MODE32');
TEST('vpcmpgtw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x65,0xd4], 'MODE64');
TEST('vpcmpgtw ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0x65,0x11], 'MODE64');

TEST('vperm2i128 ymm2, ymm6, ymm4, 7       ', [0xc4,0xe3,0x4d,0x46,0xd4,0x07], 'MODE32');
TEST('vperm2i128 ymm2, ymm6, yword [ecx], 7', [0xc4,0xe3,0x4d,0x46,0x11,0x07], 'MODE32');
TEST('vperm2i128 ymm2, ymm6, ymm4, 7       ', [0xc4,0xe3,0x4d,0x46,0xd4,0x07], 'MODE64');
TEST('vperm2i128 ymm2, ymm6, yword [rcx], 7', [0xc4,0xe3,0x4d,0x46,0x11,0x07], 'MODE64');

TEST('vpermd ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x36,0xd4], 'MODE32');
TEST('vpermd ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x36,0x11], 'MODE32');
TEST('vpermd ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x36,0xd4], 'MODE64');
TEST('vpermd ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x36,0x11], 'MODE64');

TEST('vpermpd ymm2, ymm6, 7       ', [0xc4,0xe3,0xfd,0x01,0xd6,0x07], 'MODE32');
TEST('vpermpd ymm6, yword [ecx], 7', [0xc4,0xe3,0xfd,0x01,0x31,0x07], 'MODE32');
TEST('vpermpd ymm2, ymm6, 7       ', [0xc4,0xe3,0xfd,0x01,0xd6,0x07], 'MODE64');
TEST('vpermpd ymm6, yword [rcx], 7', [0xc4,0xe3,0xfd,0x01,0x31,0x07], 'MODE64');

TEST('vpermps ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x16,0xd4], 'MODE32');
TEST('vpermps ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x16,0x11], 'MODE32');
TEST('vpermps ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x16,0xd4], 'MODE64');
TEST('vpermps ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x16,0x11], 'MODE64');

TEST('vpermq ymm2, ymm6, 7       ', [0xc4,0xe3,0xfd,0x00,0xd6,0x07], 'MODE32');
TEST('vpermq ymm6, yword [ecx], 7', [0xc4,0xe3,0xfd,0x00,0x31,0x07], 'MODE32');
TEST('vpermq ymm2, ymm6, 7       ', [0xc4,0xe3,0xfd,0x00,0xd6,0x07], 'MODE64');
TEST('vpermq ymm6, yword [rcx], 7', [0xc4,0xe3,0xfd,0x00,0x31,0x07], 'MODE64');

TEST('vphaddd ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x02,0xd4], 'MODE32');
TEST('vphaddd ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x02,0x11], 'MODE32');
TEST('vphaddd ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x02,0xd4], 'MODE64');
TEST('vphaddd ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x02,0x11], 'MODE64');

TEST('vphaddsw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x03,0xd4], 'MODE32');
TEST('vphaddsw ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x03,0x11], 'MODE32');
TEST('vphaddsw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x03,0xd4], 'MODE64');
TEST('vphaddsw ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x03,0x11], 'MODE64');

TEST('vphaddw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x01,0xd4], 'MODE32');
TEST('vphaddw ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x01,0x11], 'MODE32');
TEST('vphaddw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x01,0xd4], 'MODE64');
TEST('vphaddw ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x01,0x11], 'MODE64');

TEST('vphsubd ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x06,0xd4], 'MODE32');
TEST('vphsubd ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x06,0x11], 'MODE32');
TEST('vphsubd ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x06,0xd4], 'MODE64');
TEST('vphsubd ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x06,0x11], 'MODE64');

TEST('vphsubsw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x07,0xd4], 'MODE32');
TEST('vphsubsw ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x07,0x11], 'MODE32');
TEST('vphsubsw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x07,0xd4], 'MODE64');
TEST('vphsubsw ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x07,0x11], 'MODE64');

TEST('vphsubw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x05,0xd4], 'MODE32');
TEST('vphsubw ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x05,0x11], 'MODE32');
TEST('vphsubw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x05,0xd4], 'MODE64');
TEST('vphsubw ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x05,0x11], 'MODE64');

TEST('vpmaddubsw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x04,0xd4], 'MODE32');
TEST('vpmaddubsw ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x04,0x11], 'MODE32');
TEST('vpmaddubsw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x04,0xd4], 'MODE64');
TEST('vpmaddubsw ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x04,0x11], 'MODE64');

TEST('vpmaddwd ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xf5,0xd4], 'MODE32');
TEST('vpmaddwd ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xf5,0x11], 'MODE32');
TEST('vpmaddwd ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xf5,0xd4], 'MODE64');
TEST('vpmaddwd ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xf5,0x11], 'MODE64');

TEST('vpmaskmovd ymm6, ymm4, yword [ecx]', [0xc4,0xe2,0x5d,0x8c,0x31], 'MODE32');
TEST('vpmaskmovd yword [ecx], ymm6, ymm4', [0xc4,0xe2,0x4d,0x8e,0x21], 'MODE32');
TEST('vpmaskmovd xmm6, xmm4, oword [ecx]', [0xc4,0xe2,0x59,0x8c,0x31], 'MODE32');
TEST('vpmaskmovd oword [ecx], xmm6, xmm4', [0xc4,0xe2,0x49,0x8e,0x21], 'MODE32');
TEST('vpmaskmovd ymm6, ymm4, yword [rcx]', [0xc4,0xe2,0x5d,0x8c,0x31], 'MODE64');
TEST('vpmaskmovd yword [rcx], ymm6, ymm4', [0xc4,0xe2,0x4d,0x8e,0x21], 'MODE64');
TEST('vpmaskmovd xmm6, xmm4, oword [rcx]', [0xc4,0xe2,0x59,0x8c,0x31], 'MODE64');
TEST('vpmaskmovd oword [rcx], xmm6, xmm4', [0xc4,0xe2,0x49,0x8e,0x21], 'MODE64');

TEST('vpmaskmovq ymm6, ymm4, yword [ecx]', [0xc4,0xe2,0xdd,0x8c,0x31], 'MODE32');
TEST('vpmaskmovq yword [ecx], ymm6, ymm4', [0xc4,0xe2,0xcd,0x8e,0x21], 'MODE32');
TEST('vpmaskmovq xmm6, xmm4, oword [ecx]', [0xc4,0xe2,0xd9,0x8c,0x31], 'MODE32');
TEST('vpmaskmovq oword [ecx], xmm6, xmm4', [0xc4,0xe2,0xc9,0x8e,0x21], 'MODE32');
TEST('vpmaskmovq ymm6, ymm4, yword [rcx]', [0xc4,0xe2,0xdd,0x8c,0x31], 'MODE64');
TEST('vpmaskmovq yword [rcx], ymm6, ymm4', [0xc4,0xe2,0xcd,0x8e,0x21], 'MODE64');
TEST('vpmaskmovq xmm6, xmm4, oword [rcx]', [0xc4,0xe2,0xd9,0x8c,0x31], 'MODE64');
TEST('vpmaskmovq oword [rcx], xmm6, xmm4', [0xc4,0xe2,0xc9,0x8e,0x21], 'MODE64');

TEST('vpmaxsb ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x3c,0xd4], 'MODE32');
TEST('vpmaxsb ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x3c,0x11], 'MODE32');
TEST('vpmaxsb ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x3c,0xd4], 'MODE64');
TEST('vpmaxsb ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x3c,0x11], 'MODE64');

TEST('vpmaxsd ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x3d,0xd4], 'MODE32');
TEST('vpmaxsd ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x3d,0x11], 'MODE32');
TEST('vpmaxsd ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x3d,0xd4], 'MODE64');
TEST('vpmaxsd ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x3d,0x11], 'MODE64');

TEST('vpmaxsw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xee,0xd4], 'MODE32');
TEST('vpmaxsw ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xee,0x11], 'MODE32');
TEST('vpmaxsw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xee,0xd4], 'MODE64');
TEST('vpmaxsw ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xee,0x11], 'MODE64');

TEST('vpmaxub ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xde,0xd4], 'MODE32');
TEST('vpmaxub ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xde,0x11], 'MODE32');
TEST('vpmaxub ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xde,0xd4], 'MODE64');
TEST('vpmaxub ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xde,0x11], 'MODE64');

TEST('vpmaxud ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x3f,0xd4], 'MODE32');
TEST('vpmaxud ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x3f,0x11], 'MODE32');
TEST('vpmaxud ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x3f,0xd4], 'MODE64');
TEST('vpmaxud ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x3f,0x11], 'MODE64');

TEST('vpmaxuw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x3e,0xd4], 'MODE32');
TEST('vpmaxuw ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x3e,0x11], 'MODE32');
TEST('vpmaxuw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x3e,0xd4], 'MODE64');
TEST('vpmaxuw ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x3e,0x11], 'MODE64');

TEST('vpminsb ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x38,0xd4], 'MODE32');
TEST('vpminsb ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x38,0x11], 'MODE32');
TEST('vpminsb ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x38,0xd4], 'MODE64');
TEST('vpminsb ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x38,0x11], 'MODE64');

TEST('vpminsd ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x39,0xd4], 'MODE32');
TEST('vpminsd ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x39,0x11], 'MODE32');
TEST('vpminsd ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x39,0xd4], 'MODE64');
TEST('vpminsd ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x39,0x11], 'MODE64');

TEST('vpminsw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xea,0xd4], 'MODE32');
TEST('vpminsw ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xea,0x11], 'MODE32');
TEST('vpminsw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xea,0xd4], 'MODE64');
TEST('vpminsw ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xea,0x11], 'MODE64');

TEST('vpminub ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xda,0xd4], 'MODE32');
TEST('vpminub ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xda,0x11], 'MODE32');
TEST('vpminub ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xda,0xd4], 'MODE64');
TEST('vpminub ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xda,0x11], 'MODE64');

TEST('vpminud ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x3b,0xd4], 'MODE32');
TEST('vpminud ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x3b,0x11], 'MODE32');
TEST('vpminud ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x3b,0xd4], 'MODE64');
TEST('vpminud ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x3b,0x11], 'MODE64');

TEST('vpminuw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x3a,0xd4], 'MODE32');
TEST('vpminuw ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x3a,0x11], 'MODE32');
TEST('vpminuw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x3a,0xd4], 'MODE64');
TEST('vpminuw ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x3a,0x11], 'MODE64');

TEST('vpmovmskb ecx, ymm4', [0xc5,0xfd,0xd7,0xcc], 'MODE32');
TEST('vpmovmskb ecx, ymm4', [0xc5,0xfd,0xd7,0xcc], 'MODE64');

TEST('vpmovsxbd ymm6, xmm4       ', [0xc4,0xe2,0x7d,0x21,0xf4], 'MODE32');
TEST('vpmovsxbd ymm4, qword [ecx]', [0xc4,0xe2,0x7d,0x21,0x21], 'MODE32');
TEST('vpmovsxbd ymm6, xmm4       ', [0xc4,0xe2,0x7d,0x21,0xf4], 'MODE64');
TEST('vpmovsxbd ymm4, qword [rcx]', [0xc4,0xe2,0x7d,0x21,0x21], 'MODE64');

TEST('vpmovsxbq ymm4, xmm4       ', [0xc4,0xe2,0x7d,0x22,0xe4], 'MODE32');
TEST('vpmovsxbq ymm4, dword [ecx]', [0xc4,0xe2,0x7d,0x22,0x21], 'MODE32');
TEST('vpmovsxbq ymm4, xmm4       ', [0xc4,0xe2,0x7d,0x22,0xe4], 'MODE64');
TEST('vpmovsxbq ymm4, dword [rcx]', [0xc4,0xe2,0x7d,0x22,0x21], 'MODE64');

TEST('vpmovsxbw ymm4, xmm4       ', [0xc4,0xe2,0x7d,0x20,0xe4], 'MODE32');
TEST('vpmovsxbw ymm4, oword [ecx]', [0xc4,0xe2,0x7d,0x20,0x21], 'MODE32');
TEST('vpmovsxbw ymm4, xmm4       ', [0xc4,0xe2,0x7d,0x20,0xe4], 'MODE64');
TEST('vpmovsxbw ymm4, oword [rcx]', [0xc4,0xe2,0x7d,0x20,0x21], 'MODE64');

TEST('vpmovsxdq ymm4, xmm4       ', [0xc4,0xe2,0x7d,0x25,0xe4], 'MODE32');
TEST('vpmovsxdq ymm4, oword [ecx]', [0xc4,0xe2,0x7d,0x25,0x21], 'MODE32');
TEST('vpmovsxdq ymm4, xmm4       ', [0xc4,0xe2,0x7d,0x25,0xe4], 'MODE64');
TEST('vpmovsxdq ymm4, oword [rcx]', [0xc4,0xe2,0x7d,0x25,0x21], 'MODE64');

TEST('vpmovsxwd ymm4, xmm4       ', [0xc4,0xe2,0x7d,0x23,0xe4], 'MODE32');
TEST('vpmovsxwd ymm4, oword [ecx]', [0xc4,0xe2,0x7d,0x23,0x21], 'MODE32');
TEST('vpmovsxwd ymm4, xmm4       ', [0xc4,0xe2,0x7d,0x23,0xe4], 'MODE64');
TEST('vpmovsxwd ymm4, oword [rcx]', [0xc4,0xe2,0x7d,0x23,0x21], 'MODE64');

TEST('vpmovsxwq ymm6, xmm4       ', [0xc4,0xe2,0x7d,0x24,0xf4], 'MODE32');
TEST('vpmovsxwq ymm4, qword [ecx]', [0xc4,0xe2,0x7d,0x24,0x21], 'MODE32');
TEST('vpmovsxwq ymm6, xmm4       ', [0xc4,0xe2,0x7d,0x24,0xf4], 'MODE64');
TEST('vpmovsxwq ymm4, qword [rcx]', [0xc4,0xe2,0x7d,0x24,0x21], 'MODE64');

TEST('vpmovzxbd ymm6, xmm4       ', [0xc4,0xe2,0x7d,0x31,0xf4], 'MODE32');
TEST('vpmovzxbd ymm4, qword [ecx]', [0xc4,0xe2,0x7d,0x31,0x21], 'MODE32');
TEST('vpmovzxbd ymm6, xmm4       ', [0xc4,0xe2,0x7d,0x31,0xf4], 'MODE64');
TEST('vpmovzxbd ymm4, qword [rcx]', [0xc4,0xe2,0x7d,0x31,0x21], 'MODE64');

TEST('vpmovzxbq ymm4, xmm4       ', [0xc4,0xe2,0x7d,0x32,0xe4], 'MODE32');
TEST('vpmovzxbq ymm4, dword [ecx]', [0xc4,0xe2,0x7d,0x32,0x21], 'MODE32');
TEST('vpmovzxbq ymm4, xmm4       ', [0xc4,0xe2,0x7d,0x32,0xe4], 'MODE64');
TEST('vpmovzxbq ymm4, dword [rcx]', [0xc4,0xe2,0x7d,0x32,0x21], 'MODE64');

TEST('vpmovzxbw ymm4, xmm4       ', [0xc4,0xe2,0x7d,0x30,0xe4], 'MODE32');
TEST('vpmovzxbw ymm4, oword [ecx]', [0xc4,0xe2,0x7d,0x30,0x21], 'MODE32');
TEST('vpmovzxbw ymm4, xmm4       ', [0xc4,0xe2,0x7d,0x30,0xe4], 'MODE64');
TEST('vpmovzxbw ymm4, oword [rcx]', [0xc4,0xe2,0x7d,0x30,0x21], 'MODE64');

TEST('vpmovzxdq ymm4, xmm4       ', [0xc4,0xe2,0x7d,0x35,0xe4], 'MODE32');
TEST('vpmovzxdq ymm4, oword [ecx]', [0xc4,0xe2,0x7d,0x35,0x21], 'MODE32');
TEST('vpmovzxdq ymm4, xmm4       ', [0xc4,0xe2,0x7d,0x35,0xe4], 'MODE64');
TEST('vpmovzxdq ymm4, oword [rcx]', [0xc4,0xe2,0x7d,0x35,0x21], 'MODE64');

TEST('vpmovzxwd ymm4, xmm4       ', [0xc4,0xe2,0x7d,0x33,0xe4], 'MODE32');
TEST('vpmovzxwd ymm4, oword [ecx]', [0xc4,0xe2,0x7d,0x33,0x21], 'MODE32');
TEST('vpmovzxwd ymm4, xmm4       ', [0xc4,0xe2,0x7d,0x33,0xe4], 'MODE64');
TEST('vpmovzxwd ymm4, oword [rcx]', [0xc4,0xe2,0x7d,0x33,0x21], 'MODE64');

TEST('vpmovzxwq ymm6, xmm4       ', [0xc4,0xe2,0x7d,0x34,0xf4], 'MODE32');
TEST('vpmovzxwq ymm4, qword [ecx]', [0xc4,0xe2,0x7d,0x34,0x21], 'MODE32');
TEST('vpmovzxwq ymm6, xmm4       ', [0xc4,0xe2,0x7d,0x34,0xf4], 'MODE64');
TEST('vpmovzxwq ymm4, qword [rcx]', [0xc4,0xe2,0x7d,0x34,0x21], 'MODE64');

TEST('vpmuldq ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x28,0xd4], 'MODE32');
TEST('vpmuldq ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x28,0x11], 'MODE32');
TEST('vpmuldq ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x28,0xd4], 'MODE64');
TEST('vpmuldq ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x28,0x11], 'MODE64');

TEST('vpmulhrsw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x0b,0xd4], 'MODE32');
TEST('vpmulhrsw ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x0b,0x11], 'MODE32');
TEST('vpmulhrsw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x0b,0xd4], 'MODE64');
TEST('vpmulhrsw ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x0b,0x11], 'MODE64');

TEST('vpmulhuw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xe4,0xd4], 'MODE32');
TEST('vpmulhuw ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xe4,0x11], 'MODE32');
TEST('vpmulhuw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xe4,0xd4], 'MODE64');
TEST('vpmulhuw ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xe4,0x11], 'MODE64');

TEST('vpmulhw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xe5,0xd4], 'MODE32');
TEST('vpmulhw ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xe5,0x11], 'MODE32');
TEST('vpmulhw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xe5,0xd4], 'MODE64');
TEST('vpmulhw ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xe5,0x11], 'MODE64');

TEST('vpmulld ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x40,0xd4], 'MODE32');
TEST('vpmulld ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x40,0x11], 'MODE32');
TEST('vpmulld ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x40,0xd4], 'MODE64');
TEST('vpmulld ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x40,0x11], 'MODE64');

TEST('vpmullw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xd5,0xd4], 'MODE32');
TEST('vpmullw ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xd5,0x11], 'MODE32');
TEST('vpmullw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xd5,0xd4], 'MODE64');
TEST('vpmullw ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xd5,0x11], 'MODE64');

TEST('vpmuludq ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xf4,0xd4], 'MODE32');
TEST('vpmuludq ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xf4,0x11], 'MODE32');
TEST('vpmuludq ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xf4,0xd4], 'MODE64');
TEST('vpmuludq ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xf4,0x11], 'MODE64');

TEST('vpor ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xeb,0xd4], 'MODE32');
TEST('vpor ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xeb,0x11], 'MODE32');
TEST('vpor ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xeb,0xd4], 'MODE64');
TEST('vpor ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xeb,0x11], 'MODE64');

TEST('vpsadbw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xf6,0xd4], 'MODE32');
TEST('vpsadbw ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xf6,0x11], 'MODE32');
TEST('vpsadbw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xf6,0xd4], 'MODE64');
TEST('vpsadbw ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xf6,0x11], 'MODE64');

TEST('vpshufb ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x00,0xd4], 'MODE32');
TEST('vpshufb ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x00,0x11], 'MODE32');
TEST('vpshufb ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x00,0xd4], 'MODE64');
TEST('vpshufb ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x00,0x11], 'MODE64');

TEST('vpshufd ymm2, ymm6, 7       ', [0xc5,0xfd,0x70,0xd6,0x07], 'MODE32');
TEST('vpshufd ymm6, yword [ecx], 7', [0xc5,0xfd,0x70,0x31,0x07], 'MODE32');
TEST('vpshufd ymm2, ymm6, 7       ', [0xc5,0xfd,0x70,0xd6,0x07], 'MODE64');
TEST('vpshufd ymm6, yword [rcx], 7', [0xc5,0xfd,0x70,0x31,0x07], 'MODE64');

TEST('vpshufhw ymm2, ymm6, 7       ', [0xc5,0xfe,0x70,0xd6,0x07], 'MODE32');
TEST('vpshufhw ymm6, yword [ecx], 7', [0xc5,0xfe,0x70,0x31,0x07], 'MODE32');
TEST('vpshufhw ymm2, ymm6, 7       ', [0xc5,0xfe,0x70,0xd6,0x07], 'MODE64');
TEST('vpshufhw ymm6, yword [rcx], 7', [0xc5,0xfe,0x70,0x31,0x07], 'MODE64');

TEST('vpshuflw ymm2, ymm6, 7       ', [0xc5,0xff,0x70,0xd6,0x07], 'MODE32');
TEST('vpshuflw ymm6, yword [ecx], 7', [0xc5,0xff,0x70,0x31,0x07], 'MODE32');
TEST('vpshuflw ymm2, ymm6, 7       ', [0xc5,0xff,0x70,0xd6,0x07], 'MODE64');
TEST('vpshuflw ymm6, yword [rcx], 7', [0xc5,0xff,0x70,0x31,0x07], 'MODE64');

TEST('vpsignb ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x08,0xd4], 'MODE32');
TEST('vpsignb ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x08,0x11], 'MODE32');
TEST('vpsignb ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x08,0xd4], 'MODE64');
TEST('vpsignb ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x08,0x11], 'MODE64');

TEST('vpsignd ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x0a,0xd4], 'MODE32');
TEST('vpsignd ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x0a,0x11], 'MODE32');
TEST('vpsignd ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x0a,0xd4], 'MODE64');
TEST('vpsignd ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x0a,0x11], 'MODE64');

TEST('vpsignw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x09,0xd4], 'MODE32');
TEST('vpsignw ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x09,0x11], 'MODE32');
TEST('vpsignw ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x09,0xd4], 'MODE64');
TEST('vpsignw ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x09,0x11], 'MODE64');

TEST('vpslld ymm2, ymm6, 7          ', [0xc5,0xed,0x72,0xf6,0x07], 'MODE32');
TEST('vpslld ymm2, ymm6, xmm4       ', [0xc5,0xcd,0xf2,0xd4     ], 'MODE32');
TEST('vpslld ymm2, ymm6, oword [ecx]', [0xc5,0xcd,0xf2,0x11     ], 'MODE32');
TEST('vpslld ymm2, ymm6, 7          ', [0xc5,0xed,0x72,0xf6,0x07], 'MODE64');
TEST('vpslld ymm2, ymm6, xmm4       ', [0xc5,0xcd,0xf2,0xd4     ], 'MODE64');
TEST('vpslld ymm2, ymm6, oword [rcx]', [0xc5,0xcd,0xf2,0x11     ], 'MODE64');

TEST('vpslldq ymm2, ymm6, 7', [0xc5,0xed,0x73,0xfe,0x07], 'MODE32');
TEST('vpslldq ymm2, ymm6, 7', [0xc5,0xed,0x73,0xfe,0x07], 'MODE64');

TEST('vpsllq ymm2, ymm6, 7          ', [0xc5,0xed,0x73,0xf6,0x07], 'MODE32');
TEST('vpsllq ymm2, ymm6, xmm4       ', [0xc5,0xcd,0xf3,0xd4     ], 'MODE32');
TEST('vpsllq ymm2, ymm6, oword [ecx]', [0xc5,0xcd,0xf3,0x11     ], 'MODE32');
TEST('vpsllq ymm2, ymm6, 7          ', [0xc5,0xed,0x73,0xf6,0x07], 'MODE64');
TEST('vpsllq ymm2, ymm6, xmm4       ', [0xc5,0xcd,0xf3,0xd4     ], 'MODE64');
TEST('vpsllq ymm2, ymm6, oword [rcx]', [0xc5,0xcd,0xf3,0x11     ], 'MODE64');

TEST('vpsllvd ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x47,0xd4], 'MODE32');
TEST('vpsllvd ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x47,0x11], 'MODE32');
TEST('vpsllvd xmm2, xmm6, xmm4       ', [0xc4,0xe2,0x49,0x47,0xd4], 'MODE32');
TEST('vpsllvd xmm7, xmm6, oword [ecx]', [0xc4,0xe2,0x49,0x47,0x39], 'MODE32');
TEST('vpsllvd ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x47,0xd4], 'MODE64');
TEST('vpsllvd ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x47,0x11], 'MODE64');
TEST('vpsllvd xmm2, xmm6, xmm4       ', [0xc4,0xe2,0x49,0x47,0xd4], 'MODE64');
TEST('vpsllvd xmm7, xmm6, oword [rcx]', [0xc4,0xe2,0x49,0x47,0x39], 'MODE64');

TEST('vpsllvq ymm2, ymm6, ymm4       ', [0xc4,0xe2,0xcd,0x47,0xd4], 'MODE32');
TEST('vpsllvq ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0xcd,0x47,0x11], 'MODE32');
TEST('vpsllvq xmm2, xmm6, xmm4       ', [0xc4,0xe2,0xc9,0x47,0xd4], 'MODE32');
TEST('vpsllvq xmm7, xmm6, oword [ecx]', [0xc4,0xe2,0xc9,0x47,0x39], 'MODE32');
TEST('vpsllvq ymm2, ymm6, ymm4       ', [0xc4,0xe2,0xcd,0x47,0xd4], 'MODE64');
TEST('vpsllvq ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0xcd,0x47,0x11], 'MODE64');
TEST('vpsllvq xmm2, xmm6, xmm4       ', [0xc4,0xe2,0xc9,0x47,0xd4], 'MODE64');
TEST('vpsllvq xmm7, xmm6, oword [rcx]', [0xc4,0xe2,0xc9,0x47,0x39], 'MODE64');

TEST('vpsllw ymm2, ymm6, 7          ', [0xc5,0xed,0x71,0xf6,0x07], 'MODE32');
TEST('vpsllw ymm2, ymm6, xmm4       ', [0xc5,0xcd,0xf1,0xd4     ], 'MODE32');
TEST('vpsllw ymm2, ymm6, oword [ecx]', [0xc5,0xcd,0xf1,0x11     ], 'MODE32');
TEST('vpsllw ymm2, ymm6, 7          ', [0xc5,0xed,0x71,0xf6,0x07], 'MODE64');
TEST('vpsllw ymm2, ymm6, xmm4       ', [0xc5,0xcd,0xf1,0xd4     ], 'MODE64');
TEST('vpsllw ymm2, ymm6, oword [rcx]', [0xc5,0xcd,0xf1,0x11     ], 'MODE64');

TEST('vpsrad ymm2, ymm6, 7          ', [0xc5,0xed,0x72,0xe6,0x07], 'MODE32');
TEST('vpsrad ymm2, ymm6, xmm4       ', [0xc5,0xcd,0xe2,0xd4     ], 'MODE32');
TEST('vpsrad ymm2, ymm6, oword [ecx]', [0xc5,0xcd,0xe2,0x11     ], 'MODE32');
TEST('vpsrad ymm2, ymm6, 7          ', [0xc5,0xed,0x72,0xe6,0x07], 'MODE64');
TEST('vpsrad ymm2, ymm6, xmm4       ', [0xc5,0xcd,0xe2,0xd4     ], 'MODE64');
TEST('vpsrad ymm2, ymm6, oword [rcx]', [0xc5,0xcd,0xe2,0x11     ], 'MODE64');

TEST('vpsravd ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x46,0xd4], 'MODE32');
TEST('vpsravd ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x46,0x11], 'MODE32');
TEST('vpsravd xmm2, xmm6, xmm4       ', [0xc4,0xe2,0x49,0x46,0xd4], 'MODE32');
TEST('vpsravd xmm7, xmm6, oword [ecx]', [0xc4,0xe2,0x49,0x46,0x39], 'MODE32');
TEST('vpsravd ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x46,0xd4], 'MODE64');
TEST('vpsravd ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x46,0x11], 'MODE64');
TEST('vpsravd xmm2, xmm6, xmm4       ', [0xc4,0xe2,0x49,0x46,0xd4], 'MODE64');
TEST('vpsravd xmm7, xmm6, oword [rcx]', [0xc4,0xe2,0x49,0x46,0x39], 'MODE64');

TEST('vpsraw ymm2, ymm6, 7          ', [0xc5,0xed,0x71,0xe6,0x07], 'MODE32');
TEST('vpsraw ymm2, ymm6, xmm4       ', [0xc5,0xcd,0xe1,0xd4     ], 'MODE32');
TEST('vpsraw ymm2, ymm6, oword [ecx]', [0xc5,0xcd,0xe1,0x11     ], 'MODE32');
TEST('vpsraw ymm2, ymm6, 7          ', [0xc5,0xed,0x71,0xe6,0x07], 'MODE64');
TEST('vpsraw ymm2, ymm6, xmm4       ', [0xc5,0xcd,0xe1,0xd4     ], 'MODE64');
TEST('vpsraw ymm2, ymm6, oword [rcx]', [0xc5,0xcd,0xe1,0x11     ], 'MODE64');

TEST('vpsrld ymm2, ymm6, 7          ', [0xc5,0xed,0x72,0xd6,0x07], 'MODE32');
TEST('vpsrld ymm2, ymm6, xmm4       ', [0xc5,0xcd,0xd2,0xd4     ], 'MODE32');
TEST('vpsrld ymm2, ymm6, oword [ecx]', [0xc5,0xcd,0xd2,0x11     ], 'MODE32');
TEST('vpsrld ymm2, ymm6, 7          ', [0xc5,0xed,0x72,0xd6,0x07], 'MODE64');
TEST('vpsrld ymm2, ymm6, xmm4       ', [0xc5,0xcd,0xd2,0xd4     ], 'MODE64');
TEST('vpsrld ymm2, ymm6, oword [rcx]', [0xc5,0xcd,0xd2,0x11     ], 'MODE64');

TEST('vpsrldq ymm2, ymm6, 7', [0xc5,0xed,0x73,0xde,0x07], 'MODE32');
TEST('vpsrldq ymm2, ymm6, 7', [0xc5,0xed,0x73,0xde,0x07], 'MODE64');

TEST('vpsrlq ymm2, ymm6, 7          ', [0xc5,0xed,0x73,0xd6,0x07], 'MODE32');
TEST('vpsrlq ymm2, ymm6, xmm4       ', [0xc5,0xcd,0xd3,0xd4     ], 'MODE32');
TEST('vpsrlq ymm2, ymm6, oword [ecx]', [0xc5,0xcd,0xd3,0x11     ], 'MODE32');
TEST('vpsrlq ymm2, ymm6, 7          ', [0xc5,0xed,0x73,0xd6,0x07], 'MODE64');
TEST('vpsrlq ymm2, ymm6, xmm4       ', [0xc5,0xcd,0xd3,0xd4     ], 'MODE64');
TEST('vpsrlq ymm2, ymm6, oword [rcx]', [0xc5,0xcd,0xd3,0x11     ], 'MODE64');

TEST('vpsrlvd ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x45,0xd4], 'MODE32');
TEST('vpsrlvd ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0x4d,0x45,0x11], 'MODE32');
TEST('vpsrlvd xmm2, xmm6, xmm4       ', [0xc4,0xe2,0x49,0x45,0xd4], 'MODE32');
TEST('vpsrlvd xmm7, xmm6, oword [ecx]', [0xc4,0xe2,0x49,0x45,0x39], 'MODE32');
TEST('vpsrlvd ymm2, ymm6, ymm4       ', [0xc4,0xe2,0x4d,0x45,0xd4], 'MODE64');
TEST('vpsrlvd ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0x4d,0x45,0x11], 'MODE64');
TEST('vpsrlvd xmm2, xmm6, xmm4       ', [0xc4,0xe2,0x49,0x45,0xd4], 'MODE64');
TEST('vpsrlvd xmm7, xmm6, oword [rcx]', [0xc4,0xe2,0x49,0x45,0x39], 'MODE64');

TEST('vpsrlvq ymm2, ymm6, ymm4       ', [0xc4,0xe2,0xcd,0x45,0xd4], 'MODE32');
TEST('vpsrlvq ymm2, ymm6, yword [ecx]', [0xc4,0xe2,0xcd,0x45,0x11], 'MODE32');
TEST('vpsrlvq xmm2, xmm6, xmm4       ', [0xc4,0xe2,0xc9,0x45,0xd4], 'MODE32');
TEST('vpsrlvq xmm7, xmm6, oword [ecx]', [0xc4,0xe2,0xc9,0x45,0x39], 'MODE32');
TEST('vpsrlvq ymm2, ymm6, ymm4       ', [0xc4,0xe2,0xcd,0x45,0xd4], 'MODE64');
TEST('vpsrlvq ymm2, ymm6, yword [rcx]', [0xc4,0xe2,0xcd,0x45,0x11], 'MODE64');
TEST('vpsrlvq xmm2, xmm6, xmm4       ', [0xc4,0xe2,0xc9,0x45,0xd4], 'MODE64');
TEST('vpsrlvq xmm7, xmm6, oword [rcx]', [0xc4,0xe2,0xc9,0x45,0x39], 'MODE64');

TEST('vpsrlw ymm2, ymm6, 7          ', [0xc5,0xed,0x71,0xd6,0x07], 'MODE32');
TEST('vpsrlw ymm2, ymm6, xmm4       ', [0xc5,0xcd,0xd1,0xd4     ], 'MODE32');
TEST('vpsrlw ymm2, ymm6, oword [ecx]', [0xc5,0xcd,0xd1,0x11     ], 'MODE32');
TEST('vpsrlw ymm2, ymm6, 7          ', [0xc5,0xed,0x71,0xd6,0x07], 'MODE64');
TEST('vpsrlw ymm2, ymm6, xmm4       ', [0xc5,0xcd,0xd1,0xd4     ], 'MODE64');
TEST('vpsrlw ymm2, ymm6, oword [rcx]', [0xc5,0xcd,0xd1,0x11     ], 'MODE64');

TEST('vpsubb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xf8,0xd4], 'MODE32');
TEST('vpsubb ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xf8,0x11], 'MODE32');
TEST('vpsubb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xf8,0xd4], 'MODE64');
TEST('vpsubb ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xf8,0x11], 'MODE64');

TEST('vpsubd ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xfa,0xd4], 'MODE32');
TEST('vpsubd ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xfa,0x11], 'MODE32');
TEST('vpsubd ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xfa,0xd4], 'MODE64');
TEST('vpsubd ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xfa,0x11], 'MODE64');

TEST('vpsubq ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xfb,0xd4], 'MODE32');
TEST('vpsubq ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xfb,0x11], 'MODE32');
TEST('vpsubq ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xfb,0xd4], 'MODE64');
TEST('vpsubq ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xfb,0x11], 'MODE64');

TEST('vpsubsb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xe8,0xd4], 'MODE32');
TEST('vpsubsb ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xe8,0x11], 'MODE32');
TEST('vpsubsb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xe8,0xd4], 'MODE64');
TEST('vpsubsb ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xe8,0x11], 'MODE64');

TEST('vpsubsw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xe9,0xd4], 'MODE32');
TEST('vpsubsw ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xe9,0x11], 'MODE32');
TEST('vpsubsw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xe9,0xd4], 'MODE64');
TEST('vpsubsw ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xe9,0x11], 'MODE64');

TEST('vpsubusb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xd8,0xd4], 'MODE32');
TEST('vpsubusb ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xd8,0x11], 'MODE32');
TEST('vpsubusb ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xd8,0xd4], 'MODE64');
TEST('vpsubusb ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xd8,0x11], 'MODE64');

TEST('vpsubusw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xd9,0xd4], 'MODE32');
TEST('vpsubusw ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xd9,0x11], 'MODE32');
TEST('vpsubusw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xd9,0xd4], 'MODE64');
TEST('vpsubusw ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xd9,0x11], 'MODE64');

TEST('vpsubw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xf9,0xd4], 'MODE32');
TEST('vpsubw ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xf9,0x11], 'MODE32');
TEST('vpsubw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xf9,0xd4], 'MODE64');
TEST('vpsubw ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xf9,0x11], 'MODE64');

TEST('vpunpckhbw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x68,0xd4], 'MODE32');
TEST('vpunpckhbw ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0x68,0x11], 'MODE32');
TEST('vpunpckhbw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x68,0xd4], 'MODE64');
TEST('vpunpckhbw ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0x68,0x11], 'MODE64');

TEST('vpunpckhdq ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x6a,0xd4], 'MODE32');
TEST('vpunpckhdq ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0x6a,0x11], 'MODE32');
TEST('vpunpckhdq ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x6a,0xd4], 'MODE64');
TEST('vpunpckhdq ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0x6a,0x11], 'MODE64');

TEST('vpunpckhqdq ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x6d,0xd4], 'MODE32');
TEST('vpunpckhqdq ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0x6d,0x11], 'MODE32');
TEST('vpunpckhqdq ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x6d,0xd4], 'MODE64');
TEST('vpunpckhqdq ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0x6d,0x11], 'MODE64');

TEST('vpunpckhwd ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x69,0xd4], 'MODE32');
TEST('vpunpckhwd ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0x69,0x11], 'MODE32');
TEST('vpunpckhwd ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x69,0xd4], 'MODE64');
TEST('vpunpckhwd ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0x69,0x11], 'MODE64');

TEST('vpunpcklbw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x60,0xd4], 'MODE32');
TEST('vpunpcklbw ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0x60,0x11], 'MODE32');
TEST('vpunpcklbw ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x60,0xd4], 'MODE64');
TEST('vpunpcklbw ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0x60,0x11], 'MODE64');

TEST('vpunpckldq ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x62,0xd4], 'MODE32');
TEST('vpunpckldq ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0x62,0x11], 'MODE32');
TEST('vpunpckldq ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x62,0xd4], 'MODE64');
TEST('vpunpckldq ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0x62,0x11], 'MODE64');

TEST('vpunpcklqdq ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x6c,0xd4], 'MODE32');
TEST('vpunpcklqdq ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0x6c,0x11], 'MODE32');
TEST('vpunpcklqdq ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x6c,0xd4], 'MODE64');
TEST('vpunpcklqdq ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0x6c,0x11], 'MODE64');

TEST('vpunpcklwd ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x61,0xd4], 'MODE32');
TEST('vpunpcklwd ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0x61,0x11], 'MODE32');
TEST('vpunpcklwd ymm2, ymm6, ymm4       ', [0xc5,0xcd,0x61,0xd4], 'MODE64');
TEST('vpunpcklwd ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0x61,0x11], 'MODE64');

TEST('vpxor ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xef,0xd4], 'MODE32');
TEST('vpxor ymm2, ymm6, yword [ecx]', [0xc5,0xcd,0xef,0x11], 'MODE32');
TEST('vpxor ymm2, ymm6, ymm4       ', [0xc5,0xcd,0xef,0xd4], 'MODE64');
TEST('vpxor ymm2, ymm6, yword [rcx]', [0xc5,0xcd,0xef,0x11], 'MODE64');

